sdl.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2018 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include <vector>
  7. #include "common/param_package.h"
  8. #include "input_common/main.h"
  9. namespace InputCommon::Polling {
  10. class DevicePoller;
  11. enum class DeviceType;
  12. } // namespace InputCommon::Polling
  13. namespace InputCommon::SDL {
  14. class State {
  15. public:
  16. using Pollers = std::vector<std::unique_ptr<Polling::DevicePoller>>;
  17. /// Unregisters SDL device factories and shut them down.
  18. virtual ~State() = default;
  19. virtual Pollers GetPollers(Polling::DeviceType) {
  20. return {};
  21. }
  22. virtual std::vector<Common::ParamPackage> GetInputDevices() {
  23. return {};
  24. }
  25. virtual ButtonMapping GetButtonMappingForDevice(const Common::ParamPackage&) {
  26. return {};
  27. }
  28. virtual AnalogMapping GetAnalogMappingForDevice(const Common::ParamPackage&) {
  29. return {};
  30. }
  31. virtual MotionMapping GetMotionMappingForDevice(const Common::ParamPackage&) {
  32. return {};
  33. }
  34. };
  35. class NullState : public State {
  36. public:
  37. };
  38. std::unique_ptr<State> Init();
  39. } // namespace InputCommon::SDL