diff options
| author | 2019-04-01 14:36:24 -0400 | |
|---|---|---|
| committer | 2019-04-01 14:36:24 -0400 | |
| commit | e0eee250bb4d70f4fc4973f08649636faf9808cf (patch) | |
| tree | eaf2aabd5471c13fe89ac5f7da247b3bf1248e83 /src/input_common/sdl/sdl_impl.cpp | |
| parent | Merge pull request #2304 from lioncash/memsize (diff) | |
| parent | general: Use deducation guides for std::lock_guard and std::unique_lock (diff) | |
| download | yuzu-e0eee250bb4d70f4fc4973f08649636faf9808cf.tar.gz yuzu-e0eee250bb4d70f4fc4973f08649636faf9808cf.tar.xz yuzu-e0eee250bb4d70f4fc4973f08649636faf9808cf.zip | |
Merge pull request #2312 from lioncash/locks
general: Use deducation guides for std::lock_guard and std::unique_lock
Diffstat (limited to 'src/input_common/sdl/sdl_impl.cpp')
| -rw-r--r-- | src/input_common/sdl/sdl_impl.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index b132d77f5..5949ecbae 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp | |||
| @@ -55,22 +55,22 @@ public: | |||
| 55 | : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, deleter} {} | 55 | : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, deleter} {} |
| 56 | 56 | ||
| 57 | void SetButton(int button, bool value) { | 57 | void SetButton(int button, bool value) { |
| 58 | std::lock_guard<std::mutex> lock(mutex); | 58 | std::lock_guard lock{mutex}; |
| 59 | state.buttons[button] = value; | 59 | state.buttons[button] = value; |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | bool GetButton(int button) const { | 62 | bool GetButton(int button) const { |
| 63 | std::lock_guard<std::mutex> lock(mutex); | 63 | std::lock_guard lock{mutex}; |
| 64 | return state.buttons.at(button); | 64 | return state.buttons.at(button); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | void SetAxis(int axis, Sint16 value) { | 67 | void SetAxis(int axis, Sint16 value) { |
| 68 | std::lock_guard<std::mutex> lock(mutex); | 68 | std::lock_guard lock{mutex}; |
| 69 | state.axes[axis] = value; | 69 | state.axes[axis] = value; |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | float GetAxis(int axis) const { | 72 | float GetAxis(int axis) const { |
| 73 | std::lock_guard<std::mutex> lock(mutex); | 73 | std::lock_guard lock{mutex}; |
| 74 | return state.axes.at(axis) / 32767.0f; | 74 | return state.axes.at(axis) / 32767.0f; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| @@ -92,12 +92,12 @@ public: | |||
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | void SetHat(int hat, Uint8 direction) { | 94 | void SetHat(int hat, Uint8 direction) { |
| 95 | std::lock_guard<std::mutex> lock(mutex); | 95 | std::lock_guard lock{mutex}; |
| 96 | state.hats[hat] = direction; | 96 | state.hats[hat] = direction; |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | bool GetHatDirection(int hat, Uint8 direction) const { | 99 | bool GetHatDirection(int hat, Uint8 direction) const { |
| 100 | std::lock_guard<std::mutex> lock(mutex); | 100 | std::lock_guard lock{mutex}; |
| 101 | return (state.hats.at(hat) & direction) != 0; | 101 | return (state.hats.at(hat) & direction) != 0; |
| 102 | } | 102 | } |
| 103 | /** | 103 | /** |
| @@ -140,7 +140,7 @@ private: | |||
| 140 | * Get the nth joystick with the corresponding GUID | 140 | * Get the nth joystick with the corresponding GUID |
| 141 | */ | 141 | */ |
| 142 | std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickByGUID(const std::string& guid, int port) { | 142 | std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickByGUID(const std::string& guid, int port) { |
| 143 | std::lock_guard<std::mutex> lock(joystick_map_mutex); | 143 | std::lock_guard lock{joystick_map_mutex}; |
| 144 | const auto it = joystick_map.find(guid); | 144 | const auto it = joystick_map.find(guid); |
| 145 | if (it != joystick_map.end()) { | 145 | if (it != joystick_map.end()) { |
| 146 | while (it->second.size() <= port) { | 146 | while (it->second.size() <= port) { |
| @@ -161,7 +161,8 @@ std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickByGUID(const std::string& g | |||
| 161 | std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_id) { | 161 | std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_id) { |
| 162 | auto sdl_joystick = SDL_JoystickFromInstanceID(sdl_id); | 162 | auto sdl_joystick = SDL_JoystickFromInstanceID(sdl_id); |
| 163 | const std::string guid = GetGUID(sdl_joystick); | 163 | const std::string guid = GetGUID(sdl_joystick); |
| 164 | std::lock_guard<std::mutex> lock(joystick_map_mutex); | 164 | |
| 165 | std::lock_guard lock{joystick_map_mutex}; | ||
| 165 | auto map_it = joystick_map.find(guid); | 166 | auto map_it = joystick_map.find(guid); |
| 166 | if (map_it != joystick_map.end()) { | 167 | if (map_it != joystick_map.end()) { |
| 167 | auto vec_it = std::find_if(map_it->second.begin(), map_it->second.end(), | 168 | auto vec_it = std::find_if(map_it->second.begin(), map_it->second.end(), |
| @@ -198,8 +199,9 @@ void SDLState::InitJoystick(int joystick_index) { | |||
| 198 | LOG_ERROR(Input, "failed to open joystick {}", joystick_index); | 199 | LOG_ERROR(Input, "failed to open joystick {}", joystick_index); |
| 199 | return; | 200 | return; |
| 200 | } | 201 | } |
| 201 | std::string guid = GetGUID(sdl_joystick); | 202 | const std::string guid = GetGUID(sdl_joystick); |
| 202 | std::lock_guard<std::mutex> lock(joystick_map_mutex); | 203 | |
| 204 | std::lock_guard lock{joystick_map_mutex}; | ||
| 203 | if (joystick_map.find(guid) == joystick_map.end()) { | 205 | if (joystick_map.find(guid) == joystick_map.end()) { |
| 204 | auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick); | 206 | auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick); |
| 205 | joystick_map[guid].emplace_back(std::move(joystick)); | 207 | joystick_map[guid].emplace_back(std::move(joystick)); |
| @@ -221,7 +223,7 @@ void SDLState::CloseJoystick(SDL_Joystick* sdl_joystick) { | |||
| 221 | std::string guid = GetGUID(sdl_joystick); | 223 | std::string guid = GetGUID(sdl_joystick); |
| 222 | std::shared_ptr<SDLJoystick> joystick; | 224 | std::shared_ptr<SDLJoystick> joystick; |
| 223 | { | 225 | { |
| 224 | std::lock_guard<std::mutex> lock(joystick_map_mutex); | 226 | std::lock_guard lock{joystick_map_mutex}; |
| 225 | // This call to guid is safe since the joystick is guaranteed to be in the map | 227 | // This call to guid is safe since the joystick is guaranteed to be in the map |
| 226 | auto& joystick_guid_list = joystick_map[guid]; | 228 | auto& joystick_guid_list = joystick_map[guid]; |
| 227 | const auto joystick_it = | 229 | const auto joystick_it = |
| @@ -274,7 +276,7 @@ void SDLState::HandleGameControllerEvent(const SDL_Event& event) { | |||
| 274 | } | 276 | } |
| 275 | 277 | ||
| 276 | void SDLState::CloseJoysticks() { | 278 | void SDLState::CloseJoysticks() { |
| 277 | std::lock_guard<std::mutex> lock(joystick_map_mutex); | 279 | std::lock_guard lock{joystick_map_mutex}; |
| 278 | joystick_map.clear(); | 280 | joystick_map.clear(); |
| 279 | } | 281 | } |
| 280 | 282 | ||