2024-05-03 22:34:10 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include "../helpers/signal/Signal.hpp"
|
|
|
|
|
|
|
|
|
|
enum eHIDCapabilityType : uint32_t {
|
|
|
|
|
HID_INPUT_CAPABILITY_KEYBOARD = (1 << 0),
|
|
|
|
|
HID_INPUT_CAPABILITY_POINTER = (1 << 1),
|
|
|
|
|
HID_INPUT_CAPABILITY_TOUCH = (1 << 2),
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-05 22:18:10 +01:00
|
|
|
enum eHIDType {
|
|
|
|
|
HID_TYPE_UNKNOWN = 0,
|
|
|
|
|
HID_TYPE_POINTER,
|
|
|
|
|
HID_TYPE_KEYBOARD,
|
|
|
|
|
HID_TYPE_TOUCH,
|
|
|
|
|
HID_TYPE_TABLET,
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-03 22:34:10 +01:00
|
|
|
/*
|
|
|
|
|
Base class for a HID device.
|
|
|
|
|
This could be a keyboard, a mouse, or a touchscreen.
|
|
|
|
|
*/
|
|
|
|
|
class IHID {
|
|
|
|
|
public:
|
2024-05-05 22:18:10 +01:00
|
|
|
virtual ~IHID() {}
|
|
|
|
|
|
2024-05-03 22:34:10 +01:00
|
|
|
virtual uint32_t getCapabilities() = 0;
|
2024-05-05 22:18:10 +01:00
|
|
|
virtual eHIDType getType();
|
2024-05-03 22:34:10 +01:00
|
|
|
|
|
|
|
|
struct {
|
|
|
|
|
CSignal destroy;
|
|
|
|
|
} events;
|
|
|
|
|
|
|
|
|
|
std::string deviceName;
|
|
|
|
|
};
|