#pragma once #include #include #include #include #include "IRQHandler.h" class Keyboard final : public IRQHandler, public CharacterDevice { public: virtual ~Keyboard() override; Keyboard(); private: // ^IRQHandler virtual void handleIRQ() override; // ^CharacterDevice virtual ssize_t read(byte* buffer, size_t) override; virtual ssize_t write(const byte* buffer, size_t) override; virtual bool hasDataAvailableForRead() const override; CircularQueue m_queue; byte m_modifiers { 0 }; };