This commit is contained in:
nastys
2019-07-30 13:48:28 +02:00
parent 25f819bdfb
commit 998f4274a5
157 changed files with 0 additions and 0 deletions
@@ -0,0 +1,47 @@
#pragma once
#include "../IInputDevice.h"
#include "KeyboardState.h"
#include "../../Utilities/Stopwatch.h"
using Stopwatch = TLAC::Utilities::Stopwatch;
namespace TLAC::Input
{
constexpr float DOUBLE_TAP_THRESHOLD = 200.0f;
constexpr float INTERVAL_TAP_DELAY_THRESHOLD = 500.0f;
constexpr float INTERVAL_TAP_THRESHOLD = 75.0f;
class Keyboard : public IInputDevice
{
public:
static Keyboard* GetInstance();
bool PollInput() override;
bool IsDown(BYTE keycode);
bool IsUp(BYTE keycode);
bool IsTapped(BYTE keycode);
bool IsDoubleTapped(BYTE keycode);
bool IsReleased(BYTE keycode);
bool IsIntervalTapped(BYTE keycode);
bool WasDown(BYTE keycode);
bool WasUp(BYTE keycode);
private:
Keyboard();
KeyboardState lastState;
KeyboardState currentState;
Stopwatch keyIntervalWatch;
BYTE keyDoubleTapStates[KEYBOARD_KEYS];
Stopwatch keyDoubleTapWatches[KEYBOARD_KEYS];
BOOL keyIntervalInitials[KEYBOARD_KEYS];
BYTE keyIntervalTapStates[KEYBOARD_KEYS];
FLOAT keyIntervalTapTimes[KEYBOARD_KEYS];
static Keyboard* instance;
};
}