3#include <Core/Input/InputDevice.h>
4#include <Foundation/Communication/Event.h>
5#include <Foundation/Containers/DynamicArray.h>
6#include <Foundation/Containers/Map.h>
14 MaxInputSlotAlternatives = 3
37 plString m_sInputSlotTrigger[MaxInputSlotAlternatives];
41 float m_fInputSlotScale[MaxInputSlotAlternatives];
45 plString m_sFilterByInputSlotX[MaxInputSlotAlternatives];
49 plString m_sFilterByInputSlotY[MaxInputSlotAlternatives];
97 static void Update(
plTime timeDifference);
114 static void SetInputSlotDeadZone(
plStringView sInputSlot,
float fDeadZone);
117 static float GetInputSlotDeadZone(
plStringView sInputSlot);
136 static plUInt32 RetrieveLastCharacter(
bool bResetCurrent =
true);
146 static void PollHardware();
224 static void InjectInputSlotValue(
plStringView sInputSlot,
float fValue);
233 static plStringView ConvertScanCodeToEngineName(plUInt8 uiScanCode,
bool bIsExtendedKey);
236 static plStringView GetInputSlotTouchPoint(plUInt32 uiIndex);
239 static plStringView GetInputSlotTouchPointPositionX(plUInt32 uiIndex);
242 static plStringView GetInputSlotTouchPointPositionY(plUInt32 uiIndex);
253 EventType m_EventType = InputSlotChanged;
266 static void RemoveEventHandler(plEventSubscriptionID
id) { s_InputEvents.RemoveEventHandler(
id); }
285 float m_fValueOld = 0.0f;
301 plInt8 m_iTriggeredViaAlternative;
311 plInputSetMap s_ActionMapping;
312 plInputSlotsMap s_InputSlots;
318 static plUInt32 s_uiLastCharacter;
320 static bool s_bInputSlotResetRequired;
323 static plString s_sExclusiveInputSet;
326 static void ResetInputSlotValues();
329 static void GatherDeviceInputSlotValues();
332 static void UpdateInputSlotStates();
335 static void UpdateInputActions(
plTime tTimeDifference);
343 static plActionMap::Iterator GetBestAction(
plActionMap& Actions,
const plString& sSlot,
const plActionMap::Iterator& itFirst);
346 PL_MAKE_SUBSYSTEM_STARTUP_FRIEND(Core, InputManager);
348 static void DeallocateInternals();
349 static InternalData& GetInternals();
351 static plEventInput s_InputEvents;
353 static InternalData* s_pData;
Defines the structure of how actions are organized in a particular context.
Definition ActionMap.h:102
Definition DynamicArray.h:81
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
Enum
Definition Declarations.h:12
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12