diff options
author | James Rowe <jroweboy@gmail.com> | 2018-09-22 22:11:15 +0200 |
---|---|---|
committer | fearlessTobi <thm.frey@gmail.com> | 2019-03-02 18:38:11 +0100 |
commit | c8554d218b11b7af081c0b836991ffb94ae003bb (patch) | |
tree | 5a0f15777e2be1ca240387ee4c5eee3dc663d8c0 /src/input_common/sdl/sdl_impl.h | |
parent | Merge pull request #2186 from honzapatCZ/patch-1 (diff) | |
download | yuzu-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 'src/input_common/sdl/sdl_impl.h')
-rw-r--r-- | src/input_common/sdl/sdl_impl.h | 51 |
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 |