CommonLibVR
BSInputDeviceManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSTEvent.h"
5 #include "RE/B/BSTSingleton.h"
6 #include "RE/I/InputDevices.h"
7 
8 namespace RE
9 {
10  class BSIInputDevice;
11  class BSInputDevice;
12  class BSPCGamepadDeviceDelegate;
13  class BSPCGamepadDeviceHandler;
14  class BSWin32KeyboardDevice;
15  class BSWin32MouseDevice;
16  class BSWin32VirtualKeyboardDevice;
17  class InputEvent;
18  struct BSRemoteGamepadEvent;
19 
21  public BSTEventSource<InputEvent*>, // 00
22  public BSTSingletonSDM<BSInputDeviceManager> // 58
23  {
24  public:
26 
27  bool GetButtonNameFromID(INPUT_DEVICE a_device, std::int32_t a_id, BSFixedString& a_buttonName) const;
36  bool GetDeviceKeyMapping(INPUT_DEVICE a_device, std::uint32_t a_key, BSFixedString& a_mapping);
37  bool GetDeviceMappedKeycode(INPUT_DEVICE a_device, std::uint32_t a_key, std::uint32_t& a_outKeyCode);
43  void PollInputDevices(float a_secsSinceLastFrame);
44 
45  // members
46  std::uint8_t pad59; // 59
47  std::uint16_t pad5A; // 5A
48  std::uint32_t pad5C; // 5C
49  BSIInputDevice* devices[INPUT_DEVICES::kTotal]; // 60
51  bool valueQueued; // 81
52  bool pollingEnabled; // 82
53  std::uint8_t pad83; // 83
54  std::uint32_t pad84; // 84
56  std::uint8_t unkE0; // E0
57  std::uint8_t unkE1; // E1
58  std::uint16_t unkE2; // E2
59  std::uint32_t unkE4; // E4
60  std::uint64_t unkE8; // E8
61  private:
62  KEEP_FOR_RE()
63  };
64 #ifndef SKYRIMVR
65  static_assert(sizeof(BSInputDeviceManager) == 0xF0);
66 #else
67  static_assert(sizeof(BSInputDeviceManager) == 0x120);
68 #endif
69 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSIInputDevice.h:9
Definition: BSInputDeviceManager.h:23
std::uint32_t unkE4
Definition: BSInputDeviceManager.h:59
std::uint32_t pad5C
Definition: BSInputDeviceManager.h:48
std::uint8_t pad83
Definition: BSInputDeviceManager.h:53
bool valueQueued
Definition: BSInputDeviceManager.h:51
std::uint8_t unkE1
Definition: BSInputDeviceManager.h:57
bool GetDeviceMappedKeycode(INPUT_DEVICE a_device, std::uint32_t a_key, std::uint32_t &a_outKeyCode)
void PollInputDevices(float a_secsSinceLastFrame)
BSIInputDevice * devices[INPUT_DEVICES::kTotal]
Definition: BSInputDeviceManager.h:49
std::uint8_t unkE0
Definition: BSInputDeviceManager.h:56
bool queuedGamepadEnableValue
Definition: BSInputDeviceManager.h:50
std::uint32_t pad84
Definition: BSInputDeviceManager.h:54
bool pollingEnabled
Definition: BSInputDeviceManager.h:52
BSWin32VirtualKeyboardDevice * GetVirtualKeyboard()
BSPCGamepadDeviceDelegate * GetGamepad()
static BSInputDeviceManager * GetSingleton()
std::uint64_t unkE8
Definition: BSInputDeviceManager.h:60
BSWin32MouseDevice * GetMouse()
bool GetDeviceKeyMapping(INPUT_DEVICE a_device, std::uint32_t a_key, BSFixedString &a_mapping)
std::uint16_t unkE2
Definition: BSInputDeviceManager.h:58
bool GetButtonNameFromID(INPUT_DEVICE a_device, std::int32_t a_id, BSFixedString &a_buttonName) const
BSPCGamepadDeviceHandler * GetGamepadHandler()
BSWin32KeyboardDevice * GetKeyboard()
BSTEventSource< BSRemoteGamepadEvent > remoteGamepadEventSource
Definition: BSInputDeviceManager.h:55
std::uint16_t pad5A
Definition: BSInputDeviceManager.h:47
std::uint8_t pad59
Definition: BSInputDeviceManager.h:46
Definition: BSPCGamepadDeviceDelegate.h:10
Definition: BSPCGamepadDeviceHandler.h:10
Definition: BSTEvent.h:19
Definition: BSWin32KeyboardDevice.h:10
Definition: BSWin32MouseDevice.h:11
Definition: BSWin32VirtualKeyboardDevice.h:8
Definition: AbsorbEffect.h:6
Definition: BSTSingleton.h:50
INPUT_DEVICE
Definition: InputDevices.h:8