CommonLibSSE NG
BSInputEventQueue.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTSingleton.h"
4 #include "RE/B/ButtonEvent.h"
5 #include "RE/C/CharEvent.h"
7 #include "RE/K/KinectEvent.h"
8 #include "RE/M/MouseMoveEvent.h"
9 #include "RE/T/ThumbstickEvent.h"
10 
11 namespace RE
12 {
13  class BSInputEventQueue : public BSTSingletonSDM<BSInputEventQueue>
14  {
15  public:
16  inline static constexpr std::uint8_t MAX_BUTTON_EVENTS = 10;
17  inline static constexpr std::uint8_t MAX_CHAR_EVENTS = 5;
18  inline static constexpr std::uint8_t MAX_MOUSE_EVENTS = 1;
19  inline static constexpr std::uint8_t MAX_THUMBSTICK_EVENTS = 2;
20  inline static constexpr std::uint8_t MAX_CONNECT_EVENTS = 1;
21  inline static constexpr std::uint8_t MAX_KINECT_EVENTS = 1;
22 
24 
25  void AddButtonEvent(INPUT_DEVICE a_device, std::int32_t a_id, float a_value, float a_duration);
26  void AddCharEvent(std::uint32_t a_keyCode);
27  void AddMouseMoveEvent(std::int32_t a_mouseInputX, std::int32_t a_mouseInputY);
28  void AddThumbstickEvent(ThumbstickEvent::InputType a_id, float a_xValue, float a_yValue);
29  void AddConnectEvent(INPUT_DEVICE a_device, bool a_connected);
30  void AddKinectEvent(const BSFixedString& a_userEvent, const BSFixedString& a_heard);
33 
34  // members
35  std::uint8_t pad001; // 001
36  std::uint16_t pad002; // 002
37  std::uint32_t buttonEventCount; // 004
38  std::uint32_t charEventCount; // 008
39  std::uint32_t mouseEventCount; // 00C
40  std::uint32_t thumbstickEventCount; // 010
41  std::uint32_t connectEventCount; // 014
42  std::uint32_t kinectEventCount; // 018
43  std::uint32_t pad01C; // 01C
52  };
53  static_assert(sizeof(BSInputEventQueue) == 0x390);
54 }
Definition: BSInputEventQueue.h:14
KinectEvent kinectEvents[MAX_KINECT_EVENTS]
Definition: BSInputEventQueue.h:49
void AddCharEvent(std::uint32_t a_keyCode)
std::uint32_t kinectEventCount
Definition: BSInputEventQueue.h:42
std::uint32_t buttonEventCount
Definition: BSInputEventQueue.h:37
static constexpr std::uint8_t MAX_MOUSE_EVENTS
Definition: BSInputEventQueue.h:18
static constexpr std::uint8_t MAX_BUTTON_EVENTS
Definition: BSInputEventQueue.h:16
void AddKinectEvent(const BSFixedString &a_userEvent, const BSFixedString &a_heard)
std::uint8_t pad001
Definition: BSInputEventQueue.h:35
static BSInputEventQueue * GetSingleton()
InputEvent * queueTail
Definition: BSInputEventQueue.h:51
void AddConnectEvent(INPUT_DEVICE a_device, bool a_connected)
std::uint32_t charEventCount
Definition: BSInputEventQueue.h:38
std::uint32_t pad01C
Definition: BSInputEventQueue.h:43
CharEvent charEvents[MAX_CHAR_EVENTS]
Definition: BSInputEventQueue.h:45
static constexpr std::uint8_t MAX_CHAR_EVENTS
Definition: BSInputEventQueue.h:17
MouseMoveEvent mouseEvents[MAX_MOUSE_EVENTS]
Definition: BSInputEventQueue.h:46
std::uint16_t pad002
Definition: BSInputEventQueue.h:36
static constexpr std::uint8_t MAX_KINECT_EVENTS
Definition: BSInputEventQueue.h:21
std::uint32_t connectEventCount
Definition: BSInputEventQueue.h:41
std::uint32_t mouseEventCount
Definition: BSInputEventQueue.h:39
ThumbstickEvent thumbstickEvents[MAX_THUMBSTICK_EVENTS]
Definition: BSInputEventQueue.h:47
void PushOntoInputQueue(InputEvent *a_event)
InputEvent * queueHead
Definition: BSInputEventQueue.h:50
DeviceConnectEvent connectEvents[MAX_CONNECT_EVENTS]
Definition: BSInputEventQueue.h:48
void AddMouseMoveEvent(std::int32_t a_mouseInputX, std::int32_t a_mouseInputY)
static constexpr std::uint8_t MAX_THUMBSTICK_EVENTS
Definition: BSInputEventQueue.h:19
void AddThumbstickEvent(ThumbstickEvent::InputType a_id, float a_xValue, float a_yValue)
ButtonEvent buttonEvents[MAX_BUTTON_EVENTS]
Definition: BSInputEventQueue.h:44
static constexpr std::uint8_t MAX_CONNECT_EVENTS
Definition: BSInputEventQueue.h:20
void AddButtonEvent(INPUT_DEVICE a_device, std::int32_t a_id, float a_value, float a_duration)
std::uint32_t thumbstickEventCount
Definition: BSInputEventQueue.h:40
Definition: ButtonEvent.h:11
Definition: CharEvent.h:8
Definition: DeviceConnectEvent.h:8
Definition: InputEvent.h:25
Definition: KinectEvent.h:9
Definition: MouseMoveEvent.h:8
Definition: ThumbstickEvent.h:8
Definition: AbsorbEffect.h:6
Definition: BSTSingleton.h:50
INPUT_DEVICE
Definition: InputDevices.h:8
InputType
Definition: ThumbstickEvent.h:15