ezEngine  Milestone 7
InputDevice.h
1 #pragma once
2 
3 #include <Core/Basics.h>
5 #include <Foundation/Containers/Map.h>
6 #include <Foundation/Strings/String.h>
7 #include <Foundation/Time/Time.h>
9 #include <Core/Input/Declarations.h>
10 
40 class EZ_CORE_DLL ezInputDevice : public ezEnumerable<ezInputDevice, ezReflectedClass>
41 {
44 
45 public:
47  ezInputDevice();
48 
49 private:
50  friend class ezInputManager;
51 
59  ezUInt32 RetrieveLastCharacter();
60 
62  static void UpdateAllHardwareStates(ezTime tTimeDifference);
63 
65  static void UpdateAllDevices();
66 
68  static void ResetAllDevices();
69 
71  static ezUInt32 RetrieveLastCharacterFromAllDevices();
72 
73 protected:
75  static void RegisterInputSlot(const char* szName, const char* szDefaultDisplayName, ezBitflags<ezInputSlotFlags> SlotFlags); // [tested]
76 
90 
93  ezUInt32 m_LastCharacter; // [tested]
94 
95 private:
96 
98  void Initialize();
99  bool m_bInitialized;
100 
102  virtual void InitializeDevice() = 0;
103 
111  virtual void UpdateInputSlotValues() = 0;
112 
114  virtual void ResetInputSlotValues() { }; // [tested]
115 
120  virtual void RegisterInputSlots() = 0; // [tested]
121 
124  virtual void UpdateHardwareState(ezTime tTimeDifference) { }
125 };
126