فهرست منبع

Merge pull request #2260 from lioncash/sdl

input_common/sdl: Correct return values within GetPollers implementations
bunnei 7 سال پیش
والد
کامیت
839c0f829b
3فایلهای تغییر یافته به همراه14 افزوده شده و 12 حذف شده
  1. 7 5
      src/input_common/sdl/sdl.h
  2. 5 4
      src/input_common/sdl/sdl_impl.cpp
  3. 2 3
      src/input_common/sdl/sdl_impl.h

+ 7 - 5
src/input_common/sdl/sdl.h

@@ -24,17 +24,19 @@ namespace InputCommon::SDL {
 
 
 class State {
 class State {
 public:
 public:
-    /// Unresisters SDL device factories and shut them down.
+    using Pollers = std::vector<std::unique_ptr<Polling::DevicePoller>>;
+
+    /// Unregisters SDL device factories and shut them down.
     virtual ~State() = default;
     virtual ~State() = default;
 
 
-    virtual std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> GetPollers(
-        InputCommon::Polling::DeviceType type) = 0;
+    virtual Pollers GetPollers(Polling::DeviceType type) = 0;
 };
 };
 
 
 class NullState : public State {
 class NullState : public State {
 public:
 public:
-    std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> GetPollers(
-        InputCommon::Polling::DeviceType type) override {}
+    Pollers GetPollers(Polling::DeviceType type) override {
+        return {};
+    }
 };
 };
 
 
 std::unique_ptr<State> Init();
 std::unique_ptr<State> Init();

+ 5 - 4
src/input_common/sdl/sdl_impl.cpp

@@ -650,9 +650,9 @@ private:
 };
 };
 } // namespace Polling
 } // namespace Polling
 
 
-std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> SDLState::GetPollers(
-    InputCommon::Polling::DeviceType type) {
-    std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> pollers;
+SDLState::Pollers SDLState::GetPollers(InputCommon::Polling::DeviceType type) {
+    Pollers pollers;
+
     switch (type) {
     switch (type) {
     case InputCommon::Polling::DeviceType::Analog:
     case InputCommon::Polling::DeviceType::Analog:
         pollers.emplace_back(std::make_unique<Polling::SDLAnalogPoller>(*this));
         pollers.emplace_back(std::make_unique<Polling::SDLAnalogPoller>(*this));
@@ -660,8 +660,9 @@ std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> SDLState::GetPo
     case InputCommon::Polling::DeviceType::Button:
     case InputCommon::Polling::DeviceType::Button:
         pollers.emplace_back(std::make_unique<Polling::SDLButtonPoller>(*this));
         pollers.emplace_back(std::make_unique<Polling::SDLButtonPoller>(*this));
         break;
         break;
-        return pollers;
     }
     }
+
+    return pollers;
 }
 }
 
 
 } // namespace SDL
 } // namespace SDL

+ 2 - 3
src/input_common/sdl/sdl_impl.h

@@ -25,7 +25,7 @@ public:
     /// Initializes and registers SDL device factories
     /// Initializes and registers SDL device factories
     SDLState();
     SDLState();
 
 
-    /// Unresisters SDL device factories and shut them down.
+    /// Unregisters SDL device factories and shut them down.
     ~SDLState() override;
     ~SDLState() override;
 
 
     /// Handle SDL_Events for joysticks from SDL_PollEvent
     /// Handle SDL_Events for joysticks from SDL_PollEvent
@@ -35,8 +35,7 @@ public:
     std::shared_ptr<SDLJoystick> GetSDLJoystickByGUID(const std::string& guid, int port);
     std::shared_ptr<SDLJoystick> GetSDLJoystickByGUID(const std::string& guid, int port);
 
 
     /// Get all DevicePoller that use the SDL backend for a specific device type
     /// Get all DevicePoller that use the SDL backend for a specific device type
-    std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>> GetPollers(
-        InputCommon::Polling::DeviceType type) override;
+    Pollers GetPollers(Polling::DeviceType type) override;
 
 
     /// Used by the Pollers during config
     /// Used by the Pollers during config
     std::atomic<bool> polling = false;
     std::atomic<bool> polling = false;