diff options
Diffstat (limited to 'src/input_common/main.cpp')
| -rw-r--r-- | src/input_common/main.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index 699f41e6b..557353740 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include "input_common/analog_from_button.h" | 7 | #include "input_common/analog_from_button.h" |
| 8 | #include "input_common/keyboard.h" | 8 | #include "input_common/keyboard.h" |
| 9 | #include "input_common/main.h" | 9 | #include "input_common/main.h" |
| 10 | #include "input_common/motion_emu.h" | ||
| 10 | #ifdef HAVE_SDL2 | 11 | #ifdef HAVE_SDL2 |
| 11 | #include "input_common/sdl/sdl.h" | 12 | #include "input_common/sdl/sdl.h" |
| 12 | #endif | 13 | #endif |
| @@ -14,12 +15,16 @@ | |||
| 14 | namespace InputCommon { | 15 | namespace InputCommon { |
| 15 | 16 | ||
| 16 | static std::shared_ptr<Keyboard> keyboard; | 17 | static std::shared_ptr<Keyboard> keyboard; |
| 18 | static std::shared_ptr<MotionEmu> motion_emu; | ||
| 17 | 19 | ||
| 18 | void Init() { | 20 | void Init() { |
| 19 | keyboard = std::make_shared<InputCommon::Keyboard>(); | 21 | keyboard = std::make_shared<Keyboard>(); |
| 20 | Input::RegisterFactory<Input::ButtonDevice>("keyboard", keyboard); | 22 | Input::RegisterFactory<Input::ButtonDevice>("keyboard", keyboard); |
| 21 | Input::RegisterFactory<Input::AnalogDevice>("analog_from_button", | 23 | Input::RegisterFactory<Input::AnalogDevice>("analog_from_button", |
| 22 | std::make_shared<InputCommon::AnalogFromButton>()); | 24 | std::make_shared<AnalogFromButton>()); |
| 25 | motion_emu = std::make_shared<MotionEmu>(); | ||
| 26 | Input::RegisterFactory<Input::MotionDevice>("motion_emu", motion_emu); | ||
| 27 | |||
| 23 | #ifdef HAVE_SDL2 | 28 | #ifdef HAVE_SDL2 |
| 24 | SDL::Init(); | 29 | SDL::Init(); |
| 25 | #endif | 30 | #endif |
| @@ -29,6 +34,8 @@ void Shutdown() { | |||
| 29 | Input::UnregisterFactory<Input::ButtonDevice>("keyboard"); | 34 | Input::UnregisterFactory<Input::ButtonDevice>("keyboard"); |
| 30 | keyboard.reset(); | 35 | keyboard.reset(); |
| 31 | Input::UnregisterFactory<Input::AnalogDevice>("analog_from_button"); | 36 | Input::UnregisterFactory<Input::AnalogDevice>("analog_from_button"); |
| 37 | Input::UnregisterFactory<Input::MotionDevice>("motion_emu"); | ||
| 38 | motion_emu.reset(); | ||
| 32 | 39 | ||
| 33 | #ifdef HAVE_SDL2 | 40 | #ifdef HAVE_SDL2 |
| 34 | SDL::Shutdown(); | 41 | SDL::Shutdown(); |
| @@ -39,6 +46,10 @@ Keyboard* GetKeyboard() { | |||
| 39 | return keyboard.get(); | 46 | return keyboard.get(); |
| 40 | } | 47 | } |
| 41 | 48 | ||
| 49 | MotionEmu* GetMotionEmu() { | ||
| 50 | return motion_emu.get(); | ||
| 51 | } | ||
| 52 | |||
| 42 | std::string GenerateKeyboardParam(int key_code) { | 53 | std::string GenerateKeyboardParam(int key_code) { |
| 43 | Common::ParamPackage param{ | 54 | Common::ParamPackage param{ |
| 44 | {"engine", "keyboard"}, {"code", std::to_string(key_code)}, | 55 | {"engine", "keyboard"}, {"code", std::to_string(key_code)}, |