2019-02-12 22:13:09 -05:00
|
|
|
#pragma once
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "IKeyManager.h"
|
|
|
|
|
2019-03-15 14:16:27 -04:00
|
|
|
class Console;
|
2019-07-17 20:31:29 -04:00
|
|
|
class EmuSettings;
|
2019-03-15 14:16:27 -04:00
|
|
|
|
2019-02-12 22:13:09 -05:00
|
|
|
class KeyManager
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
static IKeyManager* _keyManager;
|
|
|
|
static MousePosition _mousePosition;
|
|
|
|
static atomic<int16_t> _xMouseMovement;
|
|
|
|
static atomic<int16_t> _yMouseMovement;
|
2019-07-17 20:31:29 -04:00
|
|
|
static EmuSettings* _settings;
|
2019-02-12 22:13:09 -05:00
|
|
|
|
|
|
|
public:
|
|
|
|
static void RegisterKeyManager(IKeyManager* keyManager);
|
2019-07-17 20:31:29 -04:00
|
|
|
static void SetSettings(EmuSettings* settings);
|
2019-02-12 22:13:09 -05:00
|
|
|
|
|
|
|
static void RefreshKeyState();
|
|
|
|
static bool IsKeyPressed(uint32_t keyCode);
|
|
|
|
static bool IsMouseButtonPressed(MouseButton button);
|
|
|
|
static vector<uint32_t> GetPressedKeys();
|
|
|
|
static string GetKeyName(uint32_t keyCode);
|
|
|
|
static uint32_t GetKeyCode(string keyName);
|
|
|
|
|
|
|
|
static void UpdateDevices();
|
2021-03-10 11:13:28 -05:00
|
|
|
|
2019-02-12 22:13:09 -05:00
|
|
|
static void SetMouseMovement(int16_t x, int16_t y);
|
2019-03-15 14:16:27 -04:00
|
|
|
static MouseMovement GetMouseMovement(double videoScale, double mouseSensitivity);
|
2021-03-10 11:13:28 -05:00
|
|
|
|
2019-03-15 14:16:27 -04:00
|
|
|
static void SetMousePosition(shared_ptr<Console> console, double x, double y);
|
2019-02-12 22:13:09 -05:00
|
|
|
static MousePosition GetMousePosition();
|
2021-03-10 11:13:28 -05:00
|
|
|
};
|