summaryrefslogtreecommitdiffstats
path: root/src/input_common/sdl/sdl_impl.h
diff options
context:
space:
mode:
authorJames Rowe <jroweboy@gmail.com>2018-09-22 22:11:15 +0200
committerfearlessTobi <thm.frey@gmail.com>2019-03-02 18:38:11 +0100
commitc8554d218b11b7af081c0b836991ffb94ae003bb (patch)
tree5a0f15777e2be1ca240387ee4c5eee3dc663d8c0 /src/input_common/sdl/sdl_impl.h
parentMerge pull request #2186 from honzapatCZ/patch-1 (diff)
downloadyuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar.gz
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar.bz2
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar.lz
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar.xz
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.tar.zst
yuzu-c8554d218b11b7af081c0b836991ffb94ae003bb.zip
Diffstat (limited to '')
-rw-r--r--src/input_common/sdl/sdl_impl.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/input_common/sdl/sdl_impl.h b/src/input_common/sdl/sdl_impl.h
new file mode 100644
index 000000000..c152fa747
--- /dev/null
+++ b/src/input_common/sdl/sdl_impl.h
@@ -0,0 +1,51 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <vector>
+#include "core/frontend/input.h"
+
+union SDL_Event;
+namespace Common {
+class ParamPackage;
+}
+namespace InputCommon {
+namespace Polling {
+class DevicePoller;
+enum class DeviceType;
+} // namespace Polling
+} // namespace InputCommon
+
+namespace InputCommon {
+namespace SDL {
+
+/// Initializes and registers SDL device factories
+void Init();
+
+/// Unresisters SDL device factories and shut them down.
+void Shutdown();
+
+/// Needs to be called before SDL_QuitSubSystem.
+void CloseSDLJoysticks();
+
+/// Handle SDL_Events for joysticks from SDL_PollEvent
+void HandleGameControllerEvent(const SDL_Event& event);
+
+/// A Loop that calls HandleGameControllerEvent until Shutdown is called
+void PollLoop();
+
+/// Creates a ParamPackage from an SDL_Event that can directly be used to create a ButtonDevice
+Common::ParamPackage SDLEventToButtonParamPackage(const SDL_Event& event);
+
+namespace Polling {
+
+/// Get all DevicePoller that use the SDL backend for a specific device type
+void GetPollers(InputCommon::Polling::DeviceType type,
+ std::vector<std::unique_ptr<InputCommon::Polling::DevicePoller>>& pollers);
+
+} // namespace Polling
+} // namespace SDL
+} // namespace InputCommon