Mesen-SX/Core/ShortcutKeyHandler.h
NovaSquirrel c0e249e993 Revert "Merge branch 'reformat_code'"
This reverts commit daf3b57e89, reversing
changes made to 7a6e0b7d77.
2021-03-10 11:13:28 -05:00

45 lines
No EOL
914 B
C++

#pragma once
#include "stdafx.h"
#include "../Utilities/SimpleLock.h"
#include "../Utilities/Timer.h"
#include "SettingTypes.h"
class Console;
class ShortcutKeyHandler
{
private:
shared_ptr<Console> _console;
thread _thread;
atomic<bool> _stopThread;
SimpleLock _lock;
int _keySetIndex;
vector<uint32_t> _pressedKeys;
vector<uint32_t> _lastPressedKeys;
bool _isKeyUp;
shared_ptr<Timer> _runSingleFrameRepeatTimer;
bool _repeatStarted;
unordered_set<uint32_t> _keysDown[2];
unordered_set<uint32_t> _prevKeysDown[2];
void CheckMappedKeys();
bool IsKeyPressed(EmulatorShortcut key);
bool IsKeyPressed(KeyCombination comb);
bool IsKeyPressed(uint32_t keyCode);
bool DetectKeyPress(EmulatorShortcut key);
bool DetectKeyRelease(EmulatorShortcut key);
void ProcessRunSingleFrame();
public:
ShortcutKeyHandler(shared_ptr<Console> console);
~ShortcutKeyHandler();
void ProcessKeys();
};