EHS/include/ehs/io/hid/InputHandler.h

58 lines
914 B
C
Raw Normal View History

2023-12-17 03:29:08 -08:00
#pragma once
2024-01-14 09:38:57 -08:00
#include "ehs/Array.h"
2023-12-17 03:29:08 -08:00
#include "HID.h"
2023-12-17 15:56:13 -08:00
namespace ehs
2023-12-17 03:29:08 -08:00
{
class InputHandler
{
private:
UInt_64 hashId;
Str_8 id;
protected:
Array<HID*> devices;
public:
virtual ~InputHandler();
InputHandler();
InputHandler(Str_8 id);
InputHandler(InputHandler&& ih) noexcept;
InputHandler(const InputHandler& ih);
InputHandler& operator=(InputHandler&& ih) noexcept;
InputHandler& operator=(const InputHandler& ih);
bool operator==(const UInt_64 otherHashId);
bool operator!=(const UInt_64 otherHashId);
virtual bool Initialize();
virtual bool Release();
virtual void Poll();
UInt_64 GetHashId() const;
Str_8 GetId() const;
void ResetAllStates();
bool HasDevice(const UInt_64 id) const;
bool AddDevice(HID* device);
HID* GetDevice(const UInt_64 id) const;
HID* GetDeviceByType(const UInt_8 type) const;
virtual bool IsInitialized() const;
};
}