Clean up
This commit is contained in:
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user