#pragma once

#include <Core/HAL/Keyboard/KeyCode.h>
#include <Core/HAL/Keyboard/ScanCode.h>
#include <Juliet.h>

namespace Juliet
{
    using KeyboardID = uint8;

    enum class KeyState : bool
    {
        Up   = false,
        Down = true
    };

    struct Key
    {
        ScanCode ScanCode;
        KeyCode  KeyCode;
        uint16   Raw;
    };

    extern JULIET_API bool IsKeyDown(ScanCode scanCode);

    extern JULIET_API KeyMod  GetKeyModState();
    extern JULIET_API KeyCode GetKeyCodeFromScanCode(ScanCode scanCode, KeyMod keyModState);
} // namespace Juliet
