Clean up
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
#include "Binding.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
Binding::Binding()
|
||||
{
|
||||
}
|
||||
|
||||
Binding::~Binding()
|
||||
{
|
||||
for (auto& binding : InputBindings)
|
||||
delete binding;
|
||||
}
|
||||
|
||||
void Binding::AddBinding(IInputBinding* inputBinding)
|
||||
{
|
||||
InputBindings.push_back(inputBinding);
|
||||
}
|
||||
|
||||
bool Binding::AnyDown()
|
||||
{
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsDown())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Binding::AnyTapped()
|
||||
{
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsTapped())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Binding::AnyReleased()
|
||||
{
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsReleased())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int Binding::GetDownCount()
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsDown())
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
int Binding::GetTappedCount()
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsTapped())
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
int Binding::GetReleasedCount()
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
for (const auto& binding : InputBindings)
|
||||
{
|
||||
if (binding->IsReleased())
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include "IInputBinding.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class Binding
|
||||
{
|
||||
public:
|
||||
std::vector<IInputBinding*> InputBindings;
|
||||
|
||||
Binding();
|
||||
~Binding();
|
||||
|
||||
void AddBinding(IInputBinding* inputBinding);
|
||||
|
||||
bool AnyDown();
|
||||
bool AnyTapped();
|
||||
bool AnyReleased();
|
||||
|
||||
int GetDownCount();
|
||||
int GetTappedCount();
|
||||
int GetReleasedCount();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#include "Ds4Binding.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
#define Ds4InstanceCheckDefault(checkFunc) (DualShock4::InstanceInitialized() ? DualShock4::GetInstance()->checkFunc : false)
|
||||
|
||||
Ds4Binding::Ds4Binding(Ds4Button button) : Button(button)
|
||||
{
|
||||
}
|
||||
|
||||
Ds4Binding::~Ds4Binding()
|
||||
{
|
||||
}
|
||||
|
||||
bool Ds4Binding::IsDown()
|
||||
{
|
||||
return Ds4InstanceCheckDefault(IsDown(Button));
|
||||
}
|
||||
|
||||
bool Ds4Binding::IsTapped()
|
||||
{
|
||||
return Ds4InstanceCheckDefault(IsTapped(Button));
|
||||
}
|
||||
|
||||
bool Ds4Binding::IsReleased()
|
||||
{
|
||||
return Ds4InstanceCheckDefault(IsReleased(Button));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include "IInputBinding.h"
|
||||
#include "../DirectInput/Ds4/DualShock4.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class Ds4Binding : public IInputBinding
|
||||
{
|
||||
public:
|
||||
Ds4Button Button;
|
||||
|
||||
Ds4Binding(Ds4Button button);
|
||||
~Ds4Binding();
|
||||
|
||||
bool IsDown() override;
|
||||
bool IsTapped() override;
|
||||
bool IsReleased() override;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class IInputBinding
|
||||
{
|
||||
public:
|
||||
virtual bool IsDown() = 0;
|
||||
virtual bool IsTapped() = 0;
|
||||
virtual bool IsReleased() = 0;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
#include "KeyboardBinding.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
KeyboardBinding::KeyboardBinding(BYTE keycode) : Keycode(keycode)
|
||||
{
|
||||
}
|
||||
|
||||
KeyboardBinding::~KeyboardBinding()
|
||||
{
|
||||
}
|
||||
|
||||
bool KeyboardBinding::IsDown()
|
||||
{
|
||||
return Keyboard::GetInstance()->IsDown(Keycode);
|
||||
}
|
||||
|
||||
bool KeyboardBinding::IsTapped()
|
||||
{
|
||||
return Keyboard::GetInstance()->IsTapped(Keycode);
|
||||
}
|
||||
|
||||
bool KeyboardBinding::IsReleased()
|
||||
{
|
||||
return Keyboard::GetInstance()->IsReleased(Keycode);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include "IInputBinding.h"
|
||||
#include "../Keyboard/Keyboard.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class KeyboardBinding : public IInputBinding
|
||||
{
|
||||
public:
|
||||
BYTE Keycode;
|
||||
|
||||
KeyboardBinding(BYTE keycode);
|
||||
~KeyboardBinding();
|
||||
|
||||
bool IsDown() override;
|
||||
bool IsTapped() override;
|
||||
bool IsReleased() override;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
#include "MouseBinding.h"
|
||||
#include "../Keyboard/Keyboard.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
MouseBinding::MouseBinding(MouseAction action) : Action(action)
|
||||
{
|
||||
}
|
||||
|
||||
MouseBinding::~MouseBinding()
|
||||
{
|
||||
}
|
||||
|
||||
bool MouseBinding::IsDown()
|
||||
{
|
||||
switch (Action)
|
||||
{
|
||||
case MouseAction_LeftButton:
|
||||
return Keyboard::GetInstance()->IsDown(MK_LBUTTON);
|
||||
case MouseAction_RightButton:
|
||||
return Keyboard::GetInstance()->IsDown(MK_RBUTTON);
|
||||
case MouseAction_MiddleButton:
|
||||
return Keyboard::GetInstance()->IsDown(MK_MBUTTON);
|
||||
case MouseAction_ScrollUp:
|
||||
return Mouse::GetInstance()->GetIsScrolledUp();
|
||||
case MouseAction_ScrollDown:
|
||||
return Mouse::GetInstance()->GetIsScrolledDown();
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool MouseBinding::IsTapped()
|
||||
{
|
||||
switch (Action)
|
||||
{
|
||||
case MouseAction_LeftButton:
|
||||
return Keyboard::GetInstance()->IsTapped(MK_LBUTTON);
|
||||
case MouseAction_RightButton:
|
||||
return Keyboard::GetInstance()->IsTapped(MK_RBUTTON);
|
||||
case MouseAction_MiddleButton:
|
||||
return Keyboard::GetInstance()->IsTapped(MK_MBUTTON);
|
||||
case MouseAction_ScrollUp:
|
||||
return Mouse::GetInstance()->GetIsScrolledUp();
|
||||
case MouseAction_ScrollDown:
|
||||
return Mouse::GetInstance()->GetIsScrolledDown();
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool MouseBinding::IsReleased()
|
||||
{
|
||||
switch (Action)
|
||||
{
|
||||
case MouseAction_LeftButton:
|
||||
return Keyboard::GetInstance()->IsReleased(MK_LBUTTON);
|
||||
case MouseAction_RightButton:
|
||||
return Keyboard::GetInstance()->IsReleased(MK_RBUTTON);
|
||||
case MouseAction_MiddleButton:
|
||||
return Keyboard::GetInstance()->IsReleased(MK_MBUTTON);
|
||||
case MouseAction_ScrollUp:
|
||||
return Mouse::GetInstance()->GetWasScrolledUp();
|
||||
case MouseAction_ScrollDown:
|
||||
return Mouse::GetInstance()->GetWasScrolledDown();
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
#include "IInputBinding.h"
|
||||
#include "../Mouse/Mouse.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
enum MouseAction
|
||||
{
|
||||
MouseAction_LeftButton,
|
||||
MouseAction_RightButton,
|
||||
MouseAction_MiddleButton,
|
||||
MouseAction_ScrollUp,
|
||||
MouseAction_ScrollDown,
|
||||
};
|
||||
|
||||
class MouseBinding : public IInputBinding
|
||||
{
|
||||
public:
|
||||
MouseAction Action;
|
||||
|
||||
MouseBinding(MouseAction action);
|
||||
~MouseBinding();
|
||||
|
||||
bool IsDown() override;
|
||||
bool IsTapped() override;
|
||||
bool IsReleased() override;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
#include "XinputBinding.h"
|
||||
#include "..\Xinput\Xinput.h"
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
XinputBinding::XinputBinding(BYTE keycode) : Keycode(keycode)
|
||||
{
|
||||
}
|
||||
|
||||
XinputBinding::~XinputBinding()
|
||||
{
|
||||
}
|
||||
|
||||
bool XinputBinding::IsDown()
|
||||
{
|
||||
return Xinput::GetInstance()->IsDown(Keycode);
|
||||
}
|
||||
|
||||
bool XinputBinding::IsTapped()
|
||||
{
|
||||
return Xinput::GetInstance()->IsTapped(Keycode);
|
||||
}
|
||||
|
||||
bool XinputBinding::IsReleased()
|
||||
{
|
||||
return Xinput::GetInstance()->IsReleased(Keycode);
|
||||
}
|
||||
|
||||
bool XinputBinding::IsDoubleTapped()
|
||||
{
|
||||
return Xinput::GetInstance()->IsDoubleTapped(Keycode);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include "IInputBinding.h"
|
||||
#include <windows.h>
|
||||
#include <vector>
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
class XinputBinding : public IInputBinding
|
||||
{
|
||||
public:
|
||||
BYTE Keycode;
|
||||
|
||||
XinputBinding(BYTE keycode);
|
||||
~XinputBinding();
|
||||
|
||||
bool IsDown() override;
|
||||
bool IsTapped() override;
|
||||
bool IsReleased() override;
|
||||
bool IsDoubleTapped();
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user